iT邦幫忙

0

我從 Angular 中分離出來依賴註入:`static-injector`

  • 分享至 

  • xImage
  •  
  • Angular 中的依賴註入確實非常好用,可以使服務之間的依賴關系變得更加靈活和可復用
  • 但是只能在 Angular 中的使用限製了他的發揮,需要讓他在所有 node/前端 平臺上都可以使用

如何使用?

為什麽不寫一個與 Angular 依賴註入相同的包

  • 一個成熟的功能往往經過了多方面的考量,所以如果能不造輪子那麽是最好的
  • 直接使用 Angular 的源碼可以保證功能與官方一直同步,不需要擔心自己實現的邏輯與官方之間存在差異
  • node/前端使用同樣的邏輯沒有心智負擔

直接復製代碼就能使用了?

  • 當然不是,首先 Angular 中的源碼都是為了它自身設計服務的,所以會有一些我們不需要的功能需要刪減.比如@Module會有依賴註入相關的代碼,@Host等組件裝飾器,還有更多非通用依賴都需要去除
  • Angular 使用依賴註入為靜態依賴註入,所以需要實現自己的靜態編譯方法,保證代碼與官方一致
  • 需要創建接口,對接並調用 Angular 源碼,使得功能正常運行

運行成功就結束了?

  • 運行成功不是結束,反而是開始的第一步,代碼成功獨立執行了,那麽接下來就要保證代碼能與Angular官方同步,不錯過新的特性,也不錯過缺陷修復
  • 所以我們要找到一種可以穩定修改代碼的方法,可以隨著項目更新自動對代碼進行裁剪,然後針對裁剪結果進行細微調整,減少工作量

使用Code Recycle對代碼進行穩定更新同步

  • 更新同步腳本
  • 通過腳本對 Angular 源碼進行拉取,使用 css 選擇器語法查詢並修改代碼
  • 修改代碼之後對代碼進行測試
  • 每次更新後只需要修改 tag => 同步更新 => 測試 => 調整(如果有問題) => 發布.減少了手工修改可能產生的問題

如何知道倉庫支持哪些功能

  • 查看用例
  • 所有存在的用例均經過了測試驗證,如果您有其他功能需要使用也可以提交 issue

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言